// 常量
export const CONSTANTS = {
    CHANGE_THEME: 'changeTheme',
    CHANGE_LAYOUT: 'changeLayout',
    SET_DATA: 'setData',
    TRANSFORM_TO_NORMAL_NODE: 'transformAllNodesToNormalNode',
    MODE: {
        READONLY: 'readonly',
        EDIT: 'edit',
    },
    LAYOUT: {
        LOGICAL_STRUCTURE: 'logicalStructure',
        LOGICAL_STRUCTURE_LEFT: 'logicalStructureLeft',
        MIND_MAP: 'mindMap',
        ORGANIZATION_STRUCTURE: 'organizationStructure',
        CATALOG_ORGANIZATION: 'catalogOrganization',
        TIMELINE: 'timeline',
        TIMELINE2: 'timeline2',
        FISHBONE: 'fishbone',
        VERTICAL_TIMELINE: 'verticalTimeline',
    },
    DIR: {
        UP: 'up',
        LEFT: 'left',
        DOWN: 'down',
        RIGHT: 'right',
    },
    KEY_DIR: {
        LEFT: 'Left',
        UP: 'Up',
        RIGHT: 'Right',
        DOWN: 'Down',
    },
    SHAPE: {
        RECTANGLE: 'rectangle',
        DIAMOND: 'diamond',
        PARALLELOGRAM: 'parallelogram',
        ROUNDED_RECTANGLE: 'roundedRectangle',
        OCTAGONAL_RECTANGLE: 'octagonalRectangle',
        OUTER_TRIANGULAR_RECTANGLE: 'outerTriangularRectangle',
        INNER_TRIANGULAR_RECTANGLE: 'innerTriangularRectangle',
        ELLIPSE: 'ellipse',
        CIRCLE: 'circle',
    },
    MOUSE_WHEEL_ACTION: {
        ZOOM: 'zoom',
        MOVE: 'move',
    },
    INIT_ROOT_NODE_POSITION: {
        LEFT: 'left',
        TOP: 'top',
        RIGHT: 'right',
        BOTTOM: 'bottom',
        CENTER: 'center',
    },
    LAYOUT_GROW_DIR: {
        LEFT: 'left',
        TOP: 'top',
        RIGHT: 'right',
        BOTTOM: 'bottom',
    },
    PASTE_TYPE: {
        CLIP_BOARD: 'clipBoard',
        CANVAS: 'canvas',
    },
    SCROLL_BAR_DIR: {
        VERTICAL: 'vertical',
        HORIZONTAL: 'horizontal',
    },
    CREATE_NEW_NODE_BEHAVIOR: {
        DEFAULT: 'default',
        NOT_ACTIVE: 'notActive',
        ACTIVE_ONLY: 'activeOnly',
    },
    TAG_POSITION: {
        RIGHT: 'right',
        BOTTOM: 'bottom',
    },
};

export const initRootNodePositionMap = {
    [CONSTANTS.INIT_ROOT_NODE_POSITION.LEFT]: 0,
    [CONSTANTS.INIT_ROOT_NODE_POSITION.TOP]: 0,
    [CONSTANTS.INIT_ROOT_NODE_POSITION.RIGHT]: 1,
    [CONSTANTS.INIT_ROOT_NODE_POSITION.BOTTOM]: 1,
    [CONSTANTS.INIT_ROOT_NODE_POSITION.CENTER]: 0.5,
};

//  布局结构列表
export const layoutList = [
    {
        name: '逻辑结构图',
        value: CONSTANTS.LAYOUT.LOGICAL_STRUCTURE,
    },
    {
        name: '向左逻辑结构图',
        value: CONSTANTS.LAYOUT.LOGICAL_STRUCTURE_LEFT,
    },
    {
        name: '思维导图',
        value: CONSTANTS.LAYOUT.MIND_MAP,
    },
    {
        name: '组织结构图',
        value: CONSTANTS.LAYOUT.ORGANIZATION_STRUCTURE,
    },
    {
        name: '目录组织图',
        value: CONSTANTS.LAYOUT.CATALOG_ORGANIZATION,
    },
    {
        name: '时间轴',
        value: CONSTANTS.LAYOUT.TIMELINE,
    },
    {
        name: '时间轴2',
        value: CONSTANTS.LAYOUT.TIMELINE2,
    },
    {
        name: '竖向时间轴',
        value: CONSTANTS.LAYOUT.VERTICAL_TIMELINE,
    },
    {
        name: '鱼骨图',
        value: CONSTANTS.LAYOUT.FISHBONE,
    },
];
export const layoutValueList = [
    CONSTANTS.LAYOUT.LOGICAL_STRUCTURE,
    CONSTANTS.LAYOUT.LOGICAL_STRUCTURE_LEFT,
    CONSTANTS.LAYOUT.MIND_MAP,
    CONSTANTS.LAYOUT.CATALOG_ORGANIZATION,
    CONSTANTS.LAYOUT.ORGANIZATION_STRUCTURE,
    CONSTANTS.LAYOUT.TIMELINE,
    CONSTANTS.LAYOUT.TIMELINE2,
    CONSTANTS.LAYOUT.VERTICAL_TIMELINE,
    CONSTANTS.LAYOUT.FISHBONE,
];

// 节点数据中非样式的字段
export const nodeDataNoStylePropList = [
    'text',
    'image',
    'imageTitle',
    'imageSize',
    'icon',
    'tag',
    'hyperlink',
    'hyperlinkTitle',
    'note',
    'expand',
    'isActive',
    'generalization',
    'richText',
    'resetRichText',
    'uid',
    'activeStyle',
    'associativeLineTargets',
    'associativeLineTargetControlOffsets',
    'associativeLinePoint',
    'associativeLineText',
    'attachmentUrl',
    'attachmentName',
    'notation',
    'outerFrame',
    'number',
    'range',
    'customLeft',
    'customTop',
    'customTextWidth',
    'checkbox',
];

// 错误类型
export const ERROR_TYPES = {
    READ_CLIPBOARD_ERROR: 'read_clipboard_error',
    PARSE_PASTE_DATA_ERROR: 'parse_paste_data_error',
    CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR: 'custom_handle_clipboard_text_error',
    LOAD_CLIPBOARD_IMAGE_ERROR: 'load_clipboard_image_error',
    BEFORE_TEXT_EDIT_ERROR: 'before_text_edit_error',
    EXPORT_ERROR: 'export_error',
    EXPORT_LOAD_IMAGE_ERROR: 'export_load_image_error',
    DATA_CHANGE_DETAIL_EVENT_ERROR: 'data_change_detail_event_error',
};

// css
export const cssContent = `
  /* 鼠标hover和激活时渲染的矩形 */
  .smm-hover-node{
    display: none;
    opacity: 0.6;
    stroke-width: 1;
  }

  .smm-node:not(.smm-node-dragging):hover .smm-hover-node{
    display: block;
  }

  .smm-node.active .smm-hover-node, .smm-node-highlight .smm-hover-node{
    display: block;
    opacity: 1;
    stroke-width: 2;
  }
`;

// html自闭合标签列表
export const selfCloseTagList = [
    'img',
    'br',
    'hr',
    'input',
    'link',
    'meta',
    'area',
];

// 非富文本模式下的节点文本行高
export const noneRichTextNodeLineHeight = 1.2;
